/////////////////////////////////////////////////////////////////////////
///@file  HTFTSTraderAPIError.h
///@brief 定义极速柜台交易API接口返回类型枚举
///@author
///@date
/////////////////////////////////////////////////////////////////////////

#pragma once

#define API_ERROR_CODE_BASE 26000

namespace HTFTS
{

    /// API调用返回类型
    enum APIResult
    {
        SUCCESS = 0,                                                    ///< 调用成功
        CONFIG_FILE_LOAD_FAILED = API_ERROR_CODE_BASE + 1,             ///< 配置文件加载失败
        LOG_INIT_FAILED = API_ERROR_CODE_BASE + 2,                     ///< 日志初始化失败
        TRADE_API_INIT_FAILED = API_ERROR_CODE_BASE + 3,               ///< trade api 全局初始化失败
        KFTS_API_CREATE_FAILED = API_ERROR_CODE_BASE + 4,              ///< 创建trade api实例失败
        KFTS_API_SET_OPT_FAILED = API_ERROR_CODE_BASE + 5,             ///< 设置trade api option失败
        KFTS_API_REG_FRONT_FAILED = API_ERROR_CODE_BASE + 6,           ///< 设置前置失败
        NEW_API_GROUP_FAILED = API_ERROR_CODE_BASE + 7,                ///< 创建trade_api组失败
        FRONT_CONFIG_NUM_ERR = API_ERROR_CODE_BASE + 8,                ///< 未配置的front地址
        COMM_PARA_IS_NULL = API_ERROR_CODE_BASE + 9,                   ///< 入参为空
        CREATE_TO_MANY_TRADE_API = API_ERROR_CODE_BASE + 10,            ///< 创建的trade_api实例超过上限
        TRADE_API_NOT_ALL_LOGINED = API_ERROR_CODE_BASE + 11,           ///< trade_api未完全登录
        MAIN_API_START_LOGIN_FAILED = API_ERROR_CODE_BASE + 12,         ///< 主连接登录失败
        TRADE_API_START_LOGIN_FAILED = API_ERROR_CODE_BASE + 13,        ///< 交易连接登录失败
        PUSH_API_START_LOGIN_FAILED = API_ERROR_CODE_BASE + 14,         ///< 推送连接登录失败
        SUBSCRIBE_TOPIC_FAILED = API_ERROR_CODE_BASE + 15,              ///< 公有流订阅失败
        MAIN_API_NOT_RELAY_LOGIN = API_ERROR_CODE_BASE + 16,            ///< 主连接未中继登录
        NEW_OBJ_RETURN_NULL = API_ERROR_CODE_BASE + 17,                 ///< 创建实例返回空
        RESUME_FROM_FLOW_FILE_FAILED = API_ERROR_CODE_BASE + 18,        ///< 反演失败
        PUBLIC_FLOW_RESUME_TIMEOUT = API_ERROR_CODE_BASE + 19,          ///< 公有流反演超时
        OPEN_FLOW_FILE_FAILED = API_ERROR_CODE_BASE + 20,               ///< 流文件打开失败
        CREATE_MDB_ERROR = API_ERROR_CODE_BASE + 21,                    ///< 创建内存数据库失败
        GET_SUBSRIBE_FLOW_ERROR = API_ERROR_CODE_BASE + 22,             ///< 获取订阅流序号
        SUBSCRIBE_TOPIC_COUNT_IS_ZERO = API_ERROR_CODE_BASE + 23,       ///< 订阅指令的个数为0
        NO_ACTIVE_PUSH_API = API_ERROR_CODE_BASE + 24,                  ///< 没有有效的推送连接
        NO_ACTIVE_TRADE_API = API_ERROR_CODE_BASE + 25,                 ///< 没有有效的交易连接
        NO_ACTIVE_MAIN_API = API_ERROR_CODE_BASE + 26,                  ///< 没有有效的主连接
        USER_LOGIN_FAILED = API_ERROR_CODE_BASE + 27,                   ///< 客户登录失败
        GENERATE_TOKEN_ERR = API_ERROR_CODE_BASE + 28,                  ///< 生产客户登录TOKEN失败
        TOKEN_STRING_ARRAY_ILLEGAL = API_ERROR_CODE_BASE + 29,          ///< TOKEN元组个数不对
        APP_ID_IN_TOKEN_IS_ERR = API_ERROR_CODE_BASE + 30,              ///< TOKEN中携带的app_id不正确
        TOKEN_CHECK_FAILED = API_ERROR_CODE_BASE + 31,                  ///< TOKEN 验证失败
        PACK_ERROR = API_ERROR_CODE_BASE + 32,                          ///< 消息结构体转换错误
        ORDER_FAIL_BY_KFTS = API_ERROR_CODE_BASE + 33,                  ///< 下单失败
        LOGOUT_FAILED = API_ERROR_CODE_BASE + 34,                       ///< 登出失败
        INVALID_ORDER_COUNT = API_ERROR_CODE_BASE + 35,                 ///< 批量下单的个数超限
        CALL_QUERY_SERVICE_FAILED = API_ERROR_CODE_BASE + 36,           ///< 调用查询服务器接口失败
        CAN_NOT_FIND_CELL = API_ERROR_CODE_BASE + 37,                  ///< 找不到单元组合
        CAN_NOT_FIND_CUST_NO = API_ERROR_CODE_BASE + 38,                ///< 未根据股东账号和市场代码查到客户号

        //认证服务器相关
        USER_TYPE_ERROR = API_ERROR_CODE_BASE + 39,                   ///< 用户类型错误
        UNPACK_ERROR = API_ERROR_CODE_BASE + 40,                        ///< 解包失败
        NETWORK_ERROR = API_ERROR_CODE_BASE + 41,                        ///< 网络出错
        INVALID_ACCOUNT = API_ERROR_CODE_BASE + 43,                    ///< 找不到客户号
        INVALID_IP = API_ERROR_CODE_BASE + 44,                        ///< 白名单中无此IP地址
        INVALID_MAC = API_ERROR_CODE_BASE + 45,                        ///< 白名单中无此MAC地址
        LICENSE_EXPIRED = API_ERROR_CODE_BASE + 46,                    ///< 授权已过期
        OLD_VERSION = API_ERROR_CODE_BASE + 47,                        ///< 版本过低
        MD5_CHECK_FAILURE = API_ERROR_CODE_BASE + 48,                 ///< MD5校验失败
        GENERAL_FAILURE = API_ERROR_CODE_BASE + 49,                   ///< 通用失败
        RELAY_CONFIG_EMPTY = API_ERROR_CODE_BASE + 50,                ///< 中继用户配置不存在
        INVALID_FRONT_TYPE = API_ERROR_CODE_BASE + 51,                ///< 非法的前置类型

        INVALID_PARA = API_ERROR_CODE_BASE + 52,                      ///< 参数非法
        NO_ACTIVE_QUERY_API = API_ERROR_CODE_BASE + 53,               ///< 没有有效的查询连接
        USER_LOGIN_AUTH_FAIL = API_ERROR_CODE_BASE + 54,              ///< 客户登录授权失败
        NO_SOURCE_TERMINAL_INFO = API_ERROR_CODE_BASE + 55,           ///< 请求来源未填写
        STREAM_LIMITTED = API_ERROR_CODE_BASE + 56,                   ///< 流量超限
        INVALID_BUSINESS_TYPE = API_ERROR_CODE_BASE + 57,             ///< 不支持的业务类型
        NOT_FIND_SEC_INFO = API_ERROR_CODE_BASE + 58,                 ///< 未查询到证券信息
        NOT_FIND_IP_AND_MAC = API_ERROR_CODE_BASE + 59,               ///< 未获取到计算机的IP地址和MAC地址
        SEND_MESSAGE_FAILED = API_ERROR_CODE_BASE + 60,               ///< 发送请求信息失败
        NOT_EXIST_MD5_INFO = API_ERROR_CODE_BASE + 61,                ///< 不存在版本、操作系统和操作系统位数所对应的MD5信息
        REC_RELAY_LOGIN_FAILED = API_ERROR_CODE_BASE + 62,            ///< 后台中继登录失败
        RELAY_LOGIN_RSP_ERROR = API_ERROR_CODE_BASE + 63,             ///< 中继登录返回包错误
        USER_SUBSCRIBE_NOT_FINISHED = API_ERROR_CODE_BASE + 64,       ///< 客户数据未同步完成，当前不支持该业务，请稍后重试

        API_RESULT_END                                                ///< 结束标志
    };
}